gRPC 源码结构
grpc 使用 protobuf(google 的序列化框架)作为通信协议,底层上使用 http2 作为其传输协议,grpc 源码中自己实现了 http2 的服务端跟客户端,而并没有用 net/http 包。
- documentation 目录是存放一些文档
- benchmark 是压测
- credentials 是验证
- examples 是例子
- grpclb 是负载均衡
- grpclog 是日志
- health 是服务健康检查
- metadata 是元数据(用户客户端给服务端传送一些特殊数据)
- naming 目录是提供名字服务需要实现的接口(相当于一个 dns)
- stats 是统计信息
- transport 传输层实现,主要是http2的客户端与服务端时实现